package com.aramis.mydytt.api

import com.aramis.mydytt.ext.TOKEN_DEFAULT
import com.aramis.mydytt.ui.bean.*
import io.reactivex.Observable
import retrofit2.http.GET
import retrofit2.http.Query

/**
 * Description: MovieApi
 * @author lizhidan
 * Created: 2021/4/6
 */
interface MovieApi {
    /**
     * 今日推荐
     */
    @GET("api/tag/hand")
    fun getRecommendToday(): Observable<DataWrapper<List<MovieItemWrapperBean>>>

    /**
     * 电影标签
     */
    @GET("api/dyTag/nUser")
    fun getMovieTag(): Observable<DataWrapper<List<MovieTagBean>>>

    /**
     * 电影列表
     */
    @GET("api/dyTag/tag")
    fun getMovieList(@Query("tag") tag: Int, @Query("page") page: Int = 1): Observable<DataWrapper<List<MovieItemBean>>>

    /**
     * 电影详情
     */
    @GET("/api/node/detail")
    fun getMovieDetail(
        @Query("id") movieId: String,
        @Query("token") token: String = TOKEN_DEFAULT
    ): Observable<DataWrapper<MovieDetailBean>>

    /**
     * 电影详情-评论列表
     */
    @GET("/api/nUser/commentList")
    fun getCommentList(
        @Query("url_id") urlId: String,
        @Query("page") page: Int = 1
    ): Observable<DataWrapper<List<MovieCommentBean>>>

    /**
     * 搜索结果
     * @param sort hot:热门，update：最新，rating：评分
     */
    @GET("api/crumb/list")
    fun getSearchResult(
        @Query("category_id") cate: Int,
        @Query("area") area: Int,
        @Query("year") year: Int,
        @Query("type") type: Int,
        @Query("sort") sort: String,
        @Query("limit") limit: Int,
        @Query("page") page: Int
    ): Observable<DataWrapper<List<MovieItemBean>>>

    /**
     * 电影专题
     */
    @GET("api/special/list")
    fun getSpecialList(@Query("page") page: Int = 1): Observable<DataWrapper<List<MovieSpecialBean>>>

    /**
     * 电影专题
     */
    @GET("api/special/detail")
    fun getSpecialDetail(@Query("id") id: Int): Observable<DataWrapper<MovieSpecialDetailBean>>

    /**
     * 电影搜索
     */
    @GET("api/video/search")
    fun search(
        @Query("key") key: String,
        @Query("page") page: Int = 1,
        @Query("token") token: String = TOKEN_DEFAULT
    ): Observable<DataWrapper<List<MovieSearchBean>>>

}